/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.webhomesites.padrao.view;

import br.com.webhomesites.configuracao.utils.ConfiguracaoInstancias;
import br.com.webhomesites.padrao.contracts.IComposicaoProdutoView;
import br.com.webhomesites.padrao.model.ComposicaoProdutoDAO;
import br.com.webhomesites.padrao.model.ComposicaoProdutoModel;
import br.com.webhomesites.padrao.model.ItensComposicaoProdutoTableModel;
import br.com.webhomesites.padrao.model.ProdutoModel;
import java.awt.Component;
import java.awt.event.ActionListener;
import java.awt.event.ItemListener;
import java.awt.event.MouseListener;
import java.util.List;
import javax.swing.JComboBox;
import javax.swing.JTextField;
import javax.swing.table.TableColumnModel;
import javax.swing.text.Document;

/**
 *
 * @author Webhome
 */
public class ComposicaoProdutoView extends javax.swing.JInternalFrame implements IComposicaoProdutoView {

    /**
     * Creates new form LocacaoView
     */
    public ComposicaoProdutoView() {
        initComponents();
        
        comboProdutoAcessorio.removeAllItems();
        comboProdutoComposto.removeAllItems();
        txtCodigoProdutoComposto.setHorizontalAlignment(JTextField.RIGHT);
        txtCodigoProdutoAcessorio.setHorizontalAlignment(JTextField.RIGHT);
        txtQuantidade.setHorizontalAlignment(JTextField.RIGHT);
        rbIncluso.setSelected(true);
        
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        rgTipoComposicao = new javax.swing.ButtonGroup();
        painelComposicaoProduto = new javax.swing.JPanel();
        btnCancelarComposicao = new javax.swing.JButton();
        txtCodigoProdutoComposto = new javax.swing.JTextField();
        labelCodigoProdutoComposto = new javax.swing.JLabel();
        comboProdutoComposto = new javax.swing.JComboBox();
        labelProdutoComposto = new javax.swing.JLabel();
        btnSalvarComposicao = new javax.swing.JButton();
        btnNovoComposicao = new javax.swing.JButton();
        painelTipoComposicao = new javax.swing.JPanel();
        rbMontado = new javax.swing.JRadioButton();
        rbIncluso = new javax.swing.JRadioButton();
        btnPesquisar = new javax.swing.JButton();
        painelIncluirProdutoAcessorio = new javax.swing.JPanel();
        txtCodigoProdutoAcessorio = new javax.swing.JTextField();
        labelCodigoProdutoAcessorio = new javax.swing.JLabel();
        comboProdutoAcessorio = new javax.swing.JComboBox();
        labelProdutoAcessorio = new javax.swing.JLabel();
        btnNovoItem = new javax.swing.JButton();
        btnSalvarItem = new javax.swing.JButton();
        btnCancelarItem = new javax.swing.JButton();
        btnRemoverItem = new javax.swing.JButton();
        txtQuantidade = new javax.swing.JTextField();
        labelQuantidade = new javax.swing.JLabel();
        scrollTabelaItens = new javax.swing.JScrollPane();
        tabelaComposicaoItens = new javax.swing.JTable();

        setClosable(true);
        setIconifiable(true);

        painelComposicaoProduto.setBorder(javax.swing.BorderFactory.createTitledBorder("Produto Composto"));

        btnCancelarComposicao.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/block-icon.png"))); // NOI18N
        btnCancelarComposicao.setMnemonic('c');

        txtCodigoProdutoComposto.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txtCodigoProdutoCompostoActionPerformed(evt);
            }
        });

        labelCodigoProdutoComposto.setText("Cód. Prod.");

        comboProdutoComposto.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Selecione o produto" }));

        labelProdutoComposto.setText("Descrição Produto Composto");

        btnSalvarComposicao.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/save-icon.png"))); // NOI18N
        btnSalvarComposicao.setMnemonic('s');

        btnNovoComposicao.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/document-icon.png"))); // NOI18N
        btnNovoComposicao.setMnemonic('n');

        painelTipoComposicao.setBorder(javax.swing.BorderFactory.createTitledBorder("Tipo Composição"));

        rgTipoComposicao.add(rbMontado);
        rbMontado.setText("Montado");
        rbMontado.setActionCommand("M");

        rgTipoComposicao.add(rbIncluso);
        rbIncluso.setText("Incluso");
        rbIncluso.setActionCommand("I");

        javax.swing.GroupLayout painelTipoComposicaoLayout = new javax.swing.GroupLayout(painelTipoComposicao);
        painelTipoComposicao.setLayout(painelTipoComposicaoLayout);
        painelTipoComposicaoLayout.setHorizontalGroup(
            painelTipoComposicaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painelTipoComposicaoLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(rbIncluso)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(rbMontado)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        painelTipoComposicaoLayout.setVerticalGroup(
            painelTipoComposicaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painelTipoComposicaoLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(painelTipoComposicaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(rbMontado)
                    .addComponent(rbIncluso))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        btnPesquisar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/search-icon.png"))); // NOI18N
        btnPesquisar.setMnemonic('p');

        javax.swing.GroupLayout painelComposicaoProdutoLayout = new javax.swing.GroupLayout(painelComposicaoProduto);
        painelComposicaoProduto.setLayout(painelComposicaoProdutoLayout);
        painelComposicaoProdutoLayout.setHorizontalGroup(
            painelComposicaoProdutoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, painelComposicaoProdutoLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(painelComposicaoProdutoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(painelComposicaoProdutoLayout.createSequentialGroup()
                        .addGroup(painelComposicaoProdutoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(labelCodigoProdutoComposto, javax.swing.GroupLayout.DEFAULT_SIZE, 64, Short.MAX_VALUE)
                            .addComponent(txtCodigoProdutoComposto))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(painelComposicaoProdutoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(comboProdutoComposto, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addGroup(painelComposicaoProdutoLayout.createSequentialGroup()
                                .addComponent(labelProdutoComposto)
                                .addGap(0, 0, Short.MAX_VALUE))))
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, painelComposicaoProdutoLayout.createSequentialGroup()
                        .addComponent(painelTipoComposicao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(btnNovoComposicao, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(btnSalvarComposicao, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(btnCancelarComposicao, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(btnPesquisar, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
        );
        painelComposicaoProdutoLayout.setVerticalGroup(
            painelComposicaoProdutoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painelComposicaoProdutoLayout.createSequentialGroup()
                .addGroup(painelComposicaoProdutoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(labelCodigoProdutoComposto)
                    .addComponent(labelProdutoComposto))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(painelComposicaoProdutoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(comboProdutoComposto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(txtCodigoProdutoComposto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(painelComposicaoProdutoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(painelTipoComposicao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(painelComposicaoProdutoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                        .addComponent(btnPesquisar, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(btnCancelarComposicao, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 47, Short.MAX_VALUE)
                        .addComponent(btnSalvarComposicao, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 47, Short.MAX_VALUE)
                        .addComponent(btnNovoComposicao, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 47, Short.MAX_VALUE)))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        painelIncluirProdutoAcessorio.setBorder(javax.swing.BorderFactory.createTitledBorder("Produto Acessório"));

        labelCodigoProdutoAcessorio.setText("Cód. Prod.");

        comboProdutoAcessorio.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Selecione o produto" }));

        labelProdutoAcessorio.setText("Descrição Produto Acessório");

        btnNovoItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/document-icon.png"))); // NOI18N
        btnNovoItem.setMnemonic('n');

        btnSalvarItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/save-icon.png"))); // NOI18N
        btnSalvarItem.setMnemonic('s');

        btnCancelarItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/block-icon.png"))); // NOI18N
        btnCancelarItem.setMnemonic('c');

        btnRemoverItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/delete-icon.png"))); // NOI18N
        btnRemoverItem.setMnemonic('x');

        labelQuantidade.setText("Quantidade");

        javax.swing.GroupLayout painelIncluirProdutoAcessorioLayout = new javax.swing.GroupLayout(painelIncluirProdutoAcessorio);
        painelIncluirProdutoAcessorio.setLayout(painelIncluirProdutoAcessorioLayout);
        painelIncluirProdutoAcessorioLayout.setHorizontalGroup(
            painelIncluirProdutoAcessorioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painelIncluirProdutoAcessorioLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(painelIncluirProdutoAcessorioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(painelIncluirProdutoAcessorioLayout.createSequentialGroup()
                        .addGroup(painelIncluirProdutoAcessorioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(labelCodigoProdutoAcessorio, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(txtCodigoProdutoAcessorio, javax.swing.GroupLayout.PREFERRED_SIZE, 64, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(11, 11, 11)
                        .addGroup(painelIncluirProdutoAcessorioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(comboProdutoAcessorio, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addGroup(painelIncluirProdutoAcessorioLayout.createSequentialGroup()
                                .addComponent(labelProdutoAcessorio)
                                .addGap(0, 0, Short.MAX_VALUE)))
                        .addGap(10, 10, 10))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, painelIncluirProdutoAcessorioLayout.createSequentialGroup()
                        .addGap(0, 0, Short.MAX_VALUE)
                        .addGroup(painelIncluirProdutoAcessorioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, painelIncluirProdutoAcessorioLayout.createSequentialGroup()
                                .addComponent(btnNovoItem, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(btnSalvarItem, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(btnRemoverItem, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(btnCancelarItem, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, painelIncluirProdutoAcessorioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(txtQuantidade, javax.swing.GroupLayout.PREFERRED_SIZE, 85, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(labelQuantidade)))
                        .addContainerGap())))
        );
        painelIncluirProdutoAcessorioLayout.setVerticalGroup(
            painelIncluirProdutoAcessorioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painelIncluirProdutoAcessorioLayout.createSequentialGroup()
                .addGroup(painelIncluirProdutoAcessorioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(labelCodigoProdutoAcessorio)
                    .addComponent(labelProdutoAcessorio))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(painelIncluirProdutoAcessorioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(txtCodigoProdutoAcessorio, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(comboProdutoAcessorio, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(labelQuantidade)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(txtQuantidade, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 16, Short.MAX_VALUE)
                .addGroup(painelIncluirProdutoAcessorioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(btnNovoItem, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btnSalvarItem, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btnCancelarItem, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btnRemoverItem, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );

        tabelaComposicaoItens.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        scrollTabelaItens.setViewportView(tabelaComposicaoItens);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(painelComposicaoProduto, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(painelIncluirProdutoAcessorio, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(scrollTabelaItens, javax.swing.GroupLayout.DEFAULT_SIZE, 620, Short.MAX_VALUE))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(painelComposicaoProduto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(painelIncluirProdutoAcessorio, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(scrollTabelaItens, javax.swing.GroupLayout.PREFERRED_SIZE, 165, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(23, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void txtCodigoProdutoCompostoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtCodigoProdutoCompostoActionPerformed
       
        // TODO add your handling code here:
    }//GEN-LAST:event_txtCodigoProdutoCompostoActionPerformed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btnCancelarComposicao;
    private javax.swing.JButton btnCancelarItem;
    private javax.swing.JButton btnNovoComposicao;
    private javax.swing.JButton btnNovoItem;
    private javax.swing.JButton btnPesquisar;
    private javax.swing.JButton btnRemoverItem;
    private javax.swing.JButton btnSalvarComposicao;
    private javax.swing.JButton btnSalvarItem;
    private javax.swing.JComboBox comboProdutoAcessorio;
    private javax.swing.JComboBox comboProdutoComposto;
    private javax.swing.JLabel labelCodigoProdutoAcessorio;
    private javax.swing.JLabel labelCodigoProdutoComposto;
    private javax.swing.JLabel labelProdutoAcessorio;
    private javax.swing.JLabel labelProdutoComposto;
    private javax.swing.JLabel labelQuantidade;
    private javax.swing.JPanel painelComposicaoProduto;
    private javax.swing.JPanel painelIncluirProdutoAcessorio;
    private javax.swing.JPanel painelTipoComposicao;
    private javax.swing.JRadioButton rbIncluso;
    private javax.swing.JRadioButton rbMontado;
    private javax.swing.ButtonGroup rgTipoComposicao;
    private javax.swing.JScrollPane scrollTabelaItens;
    private javax.swing.JTable tabelaComposicaoItens;
    private javax.swing.JTextField txtCodigoProdutoAcessorio;
    private javax.swing.JTextField txtCodigoProdutoComposto;
    private javax.swing.JTextField txtQuantidade;
    // End of variables declaration//GEN-END:variables

    @Override
    public void setCodigoProdutoComposto(long codigoProdutoComposto) {
        txtCodigoProdutoComposto.setText(Long.toString(codigoProdutoComposto));
    }

    @Override
    public long getCodigoProdutoComposto() {
        return Long.parseLong(txtCodigoProdutoComposto.getText());
    }
    
    @Override
    public void setCodigoProdutoAcessorio(long codigoProdutoAcessorio) {
        txtCodigoProdutoAcessorio.setText(Long.toString(codigoProdutoAcessorio));
    }

    @Override
    public long getCodigoProdutoAcessorio() {
        return Long.parseLong(txtCodigoProdutoAcessorio.getText());
    }

    @Override
    public void setQuantidade(String quantidade) {
        txtQuantidade.setText(title);
    }

    @Override
    public Double getQuantidade() {
        return Double.parseDouble(txtQuantidade.getText());
    }
    
     
    @Override
    public String getTipoComposicao() {
        return this.rgTipoComposicao.getSelection().getActionCommand();
    }
    

    @Override
    public void setListaProdutoComposto(List<ProdutoModel> listaProdutoComposto) {
        comboProdutoComposto.removeAllItems();
        for (int i = 0; i < listaProdutoComposto.size(); i++) // Percorro o Array List com o For aprimorado.  
        {
            this.comboProdutoComposto.addItem(listaProdutoComposto.get(i).getDescricao()); // Adiciono os dados.  
        }
    }   
    
    @Override
    public void setListaProdutoAcessorio(List<ProdutoModel> listaProdutoAcessorio) {
        comboProdutoAcessorio.removeAllItems();
        for (int i = 0; i < listaProdutoAcessorio.size(); i++) // Percorro o Array List com o For aprimorado.  
        {
            this.comboProdutoAcessorio.addItem(listaProdutoAcessorio.get(i).getDescricao()); // Adiciono os dados.  
        }
    }   

    @Override
    public void packAndShow() {
        ConfiguracaoInstancias.getDesktop().getDesktop().add(this);
        this.pack();
        this.setVisible(true);
    }

    @Override
    public void clearFields() {
        //throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void enableTxtCodigoProdutoComposto(boolean arg) {
        txtCodigoProdutoComposto.setEnabled(arg);
    }
    
    @Override
    public void enableTxtCodigoProdutoAcessorio(boolean arg) {
        txtCodigoProdutoAcessorio.setEnabled(arg);
    }
    
    @Override
    public void enableTxtQuantidade(boolean arg) {
        txtQuantidade.setEnabled(arg);
    }
    
    @Override
    public void enableComboProdutoComposto(boolean arg) {
        comboProdutoComposto.setEnabled(arg);
    }

    @Override
    public void enableComboProdutoAcessorio(boolean arg) {
        //txtLocacaoCodigoCliente.setEnabled(arg);
    }   

    @Override
    public void enableBtnCancelarComposicaoProduto(boolean arg) {
        btnCancelarComposicao.setEnabled(arg);
    }

    @Override
    public void enableBtnSalvarComposicaoProduto(boolean arg) {
        btnSalvarComposicao.setEnabled(arg);
    }

    @Override
    public void enableBtnInserirItem(boolean arg) {
        btnNovoItem.setEnabled(arg);
    }

    @Override
    public void enableBtnNovaComposicaoProduto(boolean arg) {
        btnNovoComposicao.setEnabled(arg);
    }

    @Override
    public void enableBtnSalvarItem(boolean arg) {
        btnSalvarItem.setEnabled(arg);
    }

    @Override
    public void enableBtnCancelarItem(boolean arg) {
        btnCancelarItem.setEnabled(arg);
    }

    @Override
    public void enableBtnRemoverItem(boolean arg) {
        btnRemoverItem.setEnabled(arg);
    }
        
    @Override
    public void removeAllitensComboProdutoComposto() {
        //throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void removeAllitensComboProdutoAcessorio() {
        //throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void setItensComposicaoProdutoTableModel(ItensComposicaoProdutoTableModel itensComposicaoTableModel) {
        this.tabelaComposicaoItens.setModel(itensComposicaoTableModel);

        // Configura as colunas da JTable  
        TableColumnModel columnModel = this.tabelaComposicaoItens.getColumnModel();

        columnModel.getColumn(0).setHeaderValue("Cód.");
        columnModel.getColumn(0).setPreferredWidth(20);

        columnModel.getColumn(1).setHeaderValue("Descrição");
        columnModel.getColumn(1).setPreferredWidth(30);

        columnModel.getColumn(2).setHeaderValue("Quantidade");
        columnModel.getColumn(2).setPreferredWidth(100);

    }

    @Override
    public ItensComposicaoProdutoTableModel getItensComposicaoProdutoTableModel() {
        return (ItensComposicaoProdutoTableModel) this.tabelaComposicaoItens.getModel();//throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void refreshTableItensComposicaoProduto() {
        this.tabelaComposicaoItens.updateUI();
    }

    @Override
    public void setInserirItemComposicaoActionListener(ActionListener listener) {
        this.btnNovoItem.addActionListener(listener);
    }

    @Override
    public void setInserirComposicaoActionListener(ActionListener listener) {
        this.btnNovoComposicao.addActionListener(listener);
    }

    @Override
    public void setRemoverItemComposicaoActionListener(ActionListener listener) {
        this.btnRemoverItem.addActionListener(listener);
    }

    @Override
    public void setAlterarActionListener(ActionListener listener) {
        //throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void setCancelarComposicaoActionListener(ActionListener listener) {
        this.btnCancelarComposicao.addActionListener(listener);
    }

    @Override
    public void setCancelarItemComposicaoActionListener(ActionListener listener) {
        this.btnCancelarItem.addActionListener(listener);
    }

    @Override
    public void setSalvarComposicaoActionListener(ActionListener listener) {
        this.btnSalvarComposicao.addActionListener(listener);
    }

    @Override
    public void setSalvarItemComposicaoActionListener(ActionListener listener) {
        this.btnSalvarItem.addActionListener(listener);
    }

    @Override
    public void setBtnSairActionListener(ActionListener listener) {
        //throw new UnsupportedOperationException("Not supported yet.");
    }
    
    @Override
    public void setBuscaAvancadaActionListener(ActionListener listener) {
        btnPesquisar.addActionListener(listener);
    }

    @Override
    public void clearFieldsPainelComposicaoProduto() {
        Component[] componentesPainel;
        componentesPainel = painelComposicaoProduto.getComponents();
        for (int j = 0; j < componentesPainel.length; j++) {
            if (componentesPainel[j] instanceof JTextField) {
                JTextField field = (JTextField) componentesPainel[j];
                field.setText("");
            }
        }
    }

    @Override
    public void clearFieldsPainelIncluirProdutoAcessorio() {
        Component[] componentesPainel;
        componentesPainel = painelIncluirProdutoAcessorio.getComponents();
        for (int j = 0; j < componentesPainel.length; j++) {
            if (componentesPainel[j] instanceof JTextField) {
                JTextField field = (JTextField) componentesPainel[j];
                field.setText("");
            }
        }
    }

    @Override
    public void setComboProdutoCompostoFocus() {
        this.comboProdutoComposto.requestFocus();
    }

    @Override
    public void setComboProdutoAcessorioFocus() {
        this.comboProdutoAcessorio.requestFocus();
    }

    @Override
    public int linhaSelecionadaTableItens() {
        return this.tabelaComposicaoItens.getSelectedRow();
    }

    @Override
    public void setTableItensComposicaoMouseListener(MouseListener listener) {
        this.tabelaComposicaoItens.addMouseListener(listener);
    }

    @Override
    public void clearTableItensComposicao() {
        //tabelaLocacaoItensLocacao.updateUI();
    }

    @Override
    public void setDocument(Document doc) {
           txtQuantidade.setDocument(doc);
    }

    @Override
    public void setDescricaoProdutoComposto(String produtoComposto) {
        comboProdutoComposto.setSelectedItem(produtoComposto);
    }

    @Override
    public String getDescricaoProdutoComposto() {
        return comboProdutoComposto.getSelectedItem()==null?"1":comboProdutoComposto.getSelectedItem().toString();
    }

    @Override
    public void setDescricaoProdutoAcessorio(String produtoAcessorio) {
        comboProdutoAcessorio.setSelectedItem(produtoAcessorio);
    }

    @Override
    public String getDescricaoProdutoAcessorio() {
        return comboProdutoAcessorio.getSelectedItem().toString();
    }

    @Override
    public void setComboDescricaoProdutoCompostoItemStateChanged(ItemListener listener) {
        comboProdutoComposto.addItemListener(listener);
    }
    
    @Override
    public void setComboDescricaoProdutoAcessorioItemStateChanged(ItemListener listener) {
        comboProdutoAcessorio.addItemListener(listener);
    }

    @Override
    public JComboBox getComboDescricaoProdutoComposto() {
        return comboProdutoComposto;
    }

    @Override
    public JComboBox getComboDescricaoProdutoAcessorio() {
        return comboProdutoAcessorio;
    }

}
